# -*- coding: utf8 -*-
'''
    1.3.1 图像数组表示
'''

from PIL import Image
from pylab import array

infile = 'img/haizei.jpg'

# 读取图像到数组中
im = array(Image.open(infile))
print(im.shape, im.dtype)

im = array(Image.open(infile).convert('L'), 'f')
print(im.shape, im.dtype)

'''
    输出：
    ((270, 202, 3), dtype('uint8'))
    ((270, 202), dtype('float32'))

    注：270是数组的行，202数组的列，3颜色通道，数组元素数据类型
    im[i, j, k]可以获取图像中i行,j列,k颜色通道的像素值
    im[i, :] = im[j, :]     # 将第j行的数值赋值给第i行
    im[:, i] = 100          # 将第i列的所有数值设为100
    im[:100, :50].sum()     # 计算前100行、前50列所有数值的和
    im[50:100, 50:100]      # 50~100行，50~100列
    im[i].mean()            # 第i行所有数值的平均值
    im[:, -1]               # 最后一列
    im[-2, :]               # 倒数第二行，或im[-2]
'''
